﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Admin;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;

public partial class Informes_porIngreso : GenericPage
{
    #region Propiedades
    Usuarios usuario = new Usuarios();
    List<Ingresos> listaIngresos = new List<Ingresos>();
    #endregion

    #region Controles

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                lblAccion.Text = "Seleccione Período a Evaluar";
                Conceptos concepto = new Conceptos();
                concepto = (Conceptos)Session["Concepto"];
                txtCodigo.Text = concepto.Id_Concepto.ToString();
                txtNombre.Text = concepto.Concepto;

                DateTime dHoy = DateTime.Now.Date;
                FechaH.SetFecha(dHoy);
                string sFecha = SetearFecha();
                FechaD.SetFecha(Convert.ToDateTime(sFecha));
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    protected void gvIngresos_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvIngresos.PageIndex = e.NewPageIndex;
        CargarGrilla();
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Seguridad/Default.aspx", false);
    }

    protected void btnVer_Click(object sender, EventArgs e)
    {
        try
        {
            BuscarIngresos();
            CargarGrilla();
            btnVer.Enabled = false;
            lblAccion.Text = "Resultado del período";
        }
        catch (Exception ex) { ErrorUI(ex); }
    }

    protected void btnOtro_Click(object sender, EventArgs e)
    {
        try
        {
            Response.Redirect("~/Informes/IngresosAdmin.aspx", false);
        }
        catch (Exception ex) { ErrorUI(ex); }
    }

    #endregion

    #region Métodos

    #region Limpiar
    protected void Limpiar()
    {
        try
        {
            lblAccion.Text = "Seleccione Período a Evaluar";
            lblTipo.Text = "";
            lblCantidad.Text = "";
            lblTotal.Text = "";
            List<Ingresos> listaIngresos = new List<Ingresos>();
            Session["listaIngresos"] = listaIngresos;
            CargarGrilla();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    private void CargarGrilla()
    {
        try
        {
            listaIngresos = (List<Ingresos>)Session["listaIngresos"];
            gvIngresos.DataSource = listaIngresos;
            gvIngresos.DataBind();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }

    protected void BuscarIngresos()
    {
        try
        {
            List<Ingresos> listaIngresos = new List<Ingresos>();
            BMIngresos bmIngresos = new BMIngresos(Connection);
            Ingresos egresoD = new Ingresos();
            Ingresos egresoH = new Ingresos();
            Conceptos concepto = (Conceptos)Session["Concepto"];
            egresoD.Id_Concepto = concepto.Id_Concepto;
            egresoD.Fecha = FechaD.GetFecha();
            egresoH.Fecha = FechaH.GetFecha();
            listaIngresos = bmIngresos.BMIngresosSearch(egresoD, egresoH);

            int iCantidad = 0;
            Decimal dTotal = 0;
            if (listaIngresos.Count > 0)
            {
                foreach (Ingresos egreso in listaIngresos)
                {
                    iCantidad++;
                    dTotal += egreso.Monto;
                }
                lblCantidad.Text = iCantidad.ToString();
                lblTotal.Text = dTotal.ToString();
                lblTipo.Text = "Informe de Ingresos con este Coincepto para el período";
            }
            else
            {
                lblCantidad.Text = "0";
                lblTotal.Text = "0";
                lblTipo.Text = "No hay Ingresos con este Concepto en este período";
            }

            Session["listaIngresos"] = listaIngresos;

        }
        catch (Exception ex) { ErrorUI(ex); }
    }

    #endregion
}